﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DAO;

namespace ProyectoCine.AreaPrivada
{
    public partial class Peliculas : System.Web.UI.Page, IGrilla
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if(!Page.IsPostBack)
            {
                ViewState["Orden"] = ""; 
                cargarGrilla();
                ddlGenero.DataSource = PeliculaDAO.cargarComboGenero();
                ddlGenero.DataTextField = "nombre";
                ddlGenero.DataValueField = "id_Genero";                
                ddlGenero.DataBind();
                ddlGenero.Items.Insert(0, new ListItem("Todos los Generos"));
            }
        }

        protected void btnBuscar_Click(object sender, EventArgs e)
        {
            int? genero = null;
            int? añoEstreno=null;
            if (ddlGenero.SelectedIndex != 0)
            genero = ddlGenero.SelectedIndex;
            if(!string.IsNullOrEmpty(txtAñoEstreno.Text))
            añoEstreno=int.Parse(txtAñoEstreno.Text);
            gvPeliculas.DataSource = PeliculaDAO.cargarGrillaByFiltro(txtNombre.Text, genero, añoEstreno, ViewState["Orden"].ToString());
            gvPeliculas.DataBind();


        }

        protected void gvPeliculas_SelectedIndexChanged(object sender, EventArgs e)
        {
            Session["id_PeliculaEdicion"] = gvPeliculas.SelectedDataKey.Value;
            Response.Redirect("AltaPelicula.aspx");
        }

        public  void cargarGrilla()
        {
            gvPeliculas.DataKeyNames = new string[] { "Id_Pelicula" };
            gvPeliculas.DataSource = PeliculaDAO.cargarGrilla(ViewState["Orden"].ToString());
            gvPeliculas.DataBind();
        }

        protected void gvPeliculas_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            gvPeliculas.PageIndex = e.NewPageIndex;
            cargarGrilla();
        }

        protected void gvPeliculas_Sorting(object sender, GridViewSortEventArgs e)
        {
            ViewState["Orden"] = e.SortExpression;
            cargarGrilla();
        }
    }
}